package com.briup.day03;

public class Test_Type {
    public static void main1(String[] args) {
//       情形一:自动转化
       /* byte b=10;
        short s=5;
        int sum=b+s;
        System.out.println(sum);*/
//      情形二:其他类型相互运算，范围小的自动提升为范围大的类型
        byte b=10;
        short s=5;
        double t=2.3;
        double d=(b-5)*s+t;
        System.out.println(d);
//当不同类型的数据参与运算时，Java 会将所有操作数自动提升为它们中类型最宽的那种
//基本类型的宽度顺序（从窄到宽）：
//byte < short < char < int < long < float < double
//      float d2=(b-5)*s+(float)t;//(b-5)*s自动提升为float


//         01111110  (126)
//+ 00000011   (3)
//----------------
//  10000001  (129的二进制，共9位)
//强制转换为 byte 时，只保留低 8 位：10000001
//这是 8 位补码表示，最高位为 1（表示负数），其值为 -127

    }

    public static void main(String[] args) {
        float f=(float)3.14;
        int sum=(int)123L;
        System.out.println(sum);
        int len=(int)178.5;
        System.out.println(len);
    }
}
